#include <iostream>
#include <signal.h>
#include <cstring>
using namespace std;

void handler(int signo)
{
    cout << "catch signal " << signo << endl;
}
int main()
{
    struct sigaction act, oldAct; // 创建信号处理结构体
    memset(&act, 0, sizeof(act)); // 清空结构体
    memset(&oldAct, 0, sizeof(oldAct));

    act.sa_handler = handler;     // 设置信号处理函数
    sigaction(2, &act, &oldAct);  // 对2号信号捕捉，且修改2handler表中2号信号对应的方法

    while (1)
    {
        cout << "hello world" << endl;
    }

    return 0;
}